/*
 * Copyright 2022 The Open Islands Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.openislands.oi.util;
import java.util.Set;
import java.util.stream.Collectors;

public class StringUtils {
    public static final String EMPTY = "";

    public static boolean isLetterOrDigit(String name, String extra) {
        Set<Character> set = extra.chars().mapToObj(chr -> (char) chr).collect(Collectors.toSet());
        // 检查算子name是否合法
        for (Character chk : name.toCharArray()) {
            if (set.contains(chk) || (Character.isLetterOrDigit(chk))) {
                continue;
            } else {
                return false;
            }
        }
        return true;
    }

    public static boolean noTrimEmpty(String str) {
        return str != null && str.trim().length() > 0;
    }

    public static boolean isBlank(String str){
        return org.apache.commons.lang3.StringUtils.isBlank(str);
    }

    public static boolean isEmpty(String str){
        return org.apache.commons.lang3.StringUtils.isEmpty(str);
    }

    public static boolean anyNull(String... strings) {
        if (strings == null) return true;
        for (String str : strings) {
            if (str == null) return true;
        }
        return false;
    }
}
